package br.ucb.sacop.bean;

import java.io.Serializable;
import java.util.Collection;

public class PlanoDeEnsino implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Integer codigo;

	private String periodoMinistrado;

	private String codCurriculo;

	private String semestreAno;

	private String horario;

	private String ementa;

	private String contribuicaoCurso;

	private String objetivoGeral;

	private String objetivoEspecifico;

	private String conteudoProgramatico;

	private String metodologiaEnsino;

	private String recursosInstitucionais;

	private String articulacaoOutrasDisciplinas;

	private String avaliacao;

	private Disciplina disciplina;

	private Collection<Calendario> calendarios;
	
	

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public String getPeriodoMinistrado() {
		return periodoMinistrado;
	}

	public void setPeriodoMinistrado(String periodoMinistrado) {
		this.periodoMinistrado = periodoMinistrado;
	}

	public String getCodCurriculo() {
		return codCurriculo;
	}

	public void setCodCurriculo(String codCurriculo) {
		this.codCurriculo = codCurriculo;
	}

	public String getSemestreAno() {
		return semestreAno;
	}

	public void setSemestreAno(String semestreAno) {
		this.semestreAno = semestreAno;
	}

	public String getHorario() {
		return horario;
	}

	public void setHorario(String horario) {
		this.horario = horario;
	}

	public String getEmenta() {
		return ementa;
	}

	public void setEmenta(String ementa) {
		this.ementa = ementa;
	}

	public String getContribuicaoCurso() {
		return contribuicaoCurso;
	}

	public void setContribuicaoCurso(String contribuicaoCurso) {
		this.contribuicaoCurso = contribuicaoCurso;
	}

	public String getObjetivoGeral() {
		return objetivoGeral;
	}

	public void setObjetivoGeral(String objetivoGeral) {
		this.objetivoGeral = objetivoGeral;
	}

	public String getObjetivoEspecifico() {
		return objetivoEspecifico;
	}

	public void setObjetivoEspecifico(String objetivoEspecifico) {
		this.objetivoEspecifico = objetivoEspecifico;
	}

	public String getConteudoProgramatico() {
		return conteudoProgramatico;
	}

	public void setConteudoProgramatico(String conteudoProgramatico) {
		this.conteudoProgramatico = conteudoProgramatico;
	}

	public String getMetodologiaEnsino() {
		return metodologiaEnsino;
	}

	public void setMetodologiaEnsino(String metodologiaEnsino) {
		this.metodologiaEnsino = metodologiaEnsino;
	}

	public String getRecursosInstitucionais() {
		return recursosInstitucionais;
	}

	public void setRecursosInstitucionais(String recursosInstitucionais) {
		this.recursosInstitucionais = recursosInstitucionais;
	}

	public String getArticulacaoOutrasDisciplinas() {
		return articulacaoOutrasDisciplinas;
	}

	public void setArticulacaoOutrasDisciplinas(
			String articulacaoOutrasDisciplinas) {
		this.articulacaoOutrasDisciplinas = articulacaoOutrasDisciplinas;
	}

	public String getAvaliacao() {
		return avaliacao;
	}

	public void setAvaliacao(String avaliacao) {
		this.avaliacao = avaliacao;
	}

	public Collection<Calendario> getCalendarios() {
		return calendarios;
	}

	public void setCalendarios(Collection<Calendario> calendarios) {
		this.calendarios = calendarios;
	}



	public Disciplina getDisciplina() {
		return disciplina;
	}

	public void setDisciplina(Disciplina disciplina) {
		this.disciplina = disciplina;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime
				* result
				+ ((articulacaoOutrasDisciplinas == null) ? 0
						: articulacaoOutrasDisciplinas.hashCode());
		result = prime * result
				+ ((avaliacao == null) ? 0 : avaliacao.hashCode());
		result = prime * result
				+ ((codCurriculo == null) ? 0 : codCurriculo.hashCode());
		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
		result = prime
				* result
				+ ((conteudoProgramatico == null) ? 0 : conteudoProgramatico
						.hashCode());
		result = prime
				* result
				+ ((contribuicaoCurso == null) ? 0 : contribuicaoCurso
						.hashCode());
		result = prime * result + ((ementa == null) ? 0 : ementa.hashCode());
		result = prime * result + ((horario == null) ? 0 : horario.hashCode());
		result = prime
				* result
				+ ((metodologiaEnsino == null) ? 0 : metodologiaEnsino
						.hashCode());
		result = prime
				* result
				+ ((objetivoEspecifico == null) ? 0 : objetivoEspecifico
						.hashCode());
		result = prime * result
				+ ((objetivoGeral == null) ? 0 : objetivoGeral.hashCode());
		result = prime
				* result
				+ ((periodoMinistrado == null) ? 0 : periodoMinistrado
						.hashCode());
		result = prime
				* result
				+ ((recursosInstitucionais == null) ? 0
						: recursosInstitucionais.hashCode());
		result = prime * result
				+ ((semestreAno == null) ? 0 : semestreAno.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		PlanoDeEnsino other = (PlanoDeEnsino) obj;
		if (articulacaoOutrasDisciplinas == null) {
			if (other.articulacaoOutrasDisciplinas != null)
				return false;
		} else if (!articulacaoOutrasDisciplinas
				.equals(other.articulacaoOutrasDisciplinas))
			return false;
		if (avaliacao == null) {
			if (other.avaliacao != null)
				return false;
		} else if (!avaliacao.equals(other.avaliacao))
			return false;
		if (codCurriculo == null) {
			if (other.codCurriculo != null)
				return false;
		} else if (!codCurriculo.equals(other.codCurriculo))
			return false;
		if (codigo == null) {
			if (other.codigo != null)
				return false;
		} else if (!codigo.equals(other.codigo))
			return false;
		if (conteudoProgramatico == null) {
			if (other.conteudoProgramatico != null)
				return false;
		} else if (!conteudoProgramatico.equals(other.conteudoProgramatico))
			return false;
		if (contribuicaoCurso == null) {
			if (other.contribuicaoCurso != null)
				return false;
		} else if (!contribuicaoCurso.equals(other.contribuicaoCurso))
			return false;
		if (ementa == null) {
			if (other.ementa != null)
				return false;
		} else if (!ementa.equals(other.ementa))
			return false;
		if (horario == null) {
			if (other.horario != null)
				return false;
		} else if (!horario.equals(other.horario))
			return false;
		if (metodologiaEnsino == null) {
			if (other.metodologiaEnsino != null)
				return false;
		} else if (!metodologiaEnsino.equals(other.metodologiaEnsino))
			return false;
		if (objetivoEspecifico == null) {
			if (other.objetivoEspecifico != null)
				return false;
		} else if (!objetivoEspecifico.equals(other.objetivoEspecifico))
			return false;
		if (objetivoGeral == null) {
			if (other.objetivoGeral != null)
				return false;
		} else if (!objetivoGeral.equals(other.objetivoGeral))
			return false;
		if (periodoMinistrado == null) {
			if (other.periodoMinistrado != null)
				return false;
		} else if (!periodoMinistrado.equals(other.periodoMinistrado))
			return false;
		if (recursosInstitucionais == null) {
			if (other.recursosInstitucionais != null)
				return false;
		} else if (!recursosInstitucionais.equals(other.recursosInstitucionais))
			return false;
		if (semestreAno == null) {
			if (other.semestreAno != null)
				return false;
		} else if (!semestreAno.equals(other.semestreAno))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "PlanoDeEnsino [codigo=" + codigo + ", periodoMinistrado="
				+ periodoMinistrado + ", codCurriculo=" + codCurriculo
				+ ", semestreAno=" + semestreAno + ", horario=" + horario
				+ ", ementa=" + ementa + ", contribuicaoCurso="
				+ contribuicaoCurso + ", objetivoGeral=" + objetivoGeral
				+ ", objetivoEspecifico=" + objetivoEspecifico
				+ ", conteudoProgramatico=" + conteudoProgramatico
				+ ", metodologiaEnsino=" + metodologiaEnsino
				+ ", recursosInstitucionais=" + recursosInstitucionais
				+ ", articulacaoOutrasDisciplinas="
				+ articulacaoOutrasDisciplinas + ", avaliacao=" + avaliacao
				+ "]";
	}

}
